package com.learning.dubbo.features.dispatcher;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * ClassName: DubboFeaturesDispatcherApplication
 * Description: 线程模型
 * <p>
 * 1- 如果事件处理的逻辑能迅速完成，并且不会发起新的 IO 请求，比如只是在内存中记个标识，
 * 则直接在 IO 线程上处理更快，因为减少了线程池调度。
 * <p>
 * 2-但如果事件处理逻辑较慢，或者需要发起新的 IO 请求，比如需要查询数据库，则必须派发到
 * 线程池，否则 IO 线程阻塞，将导致不能接收其它请求。
 * <p>
 * 3- 如果用 IO 线程处理事件，又在事件处理过程中发起新的 IO 请求，比如在连接事件中发起登录
 * 请求，会报“可能引发死锁”异常，但不会真死锁。
 * <p>
 * 4-因此，需要通过不同的派发策略和不同的线程池配置的组合来应对不同的场景:
 * <p>
 * Date: 2020/6/15 13:43 【需求编号】
 *
 * @author Sam Sho
 * @version V1.0.0
 */
@SpringBootApplication
public class DubboFeaturesDispatcherApplication {

    public static void main(String[] args) {
        SpringApplication.run(DubboFeaturesDispatcherApplication.class, args);
    }

}
